package fiscal.gui.moldeProduto;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.ListSelectionModel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;

import exceptions.PersistenceExceptionMessage;
import fiscal.action.ClassificacaoActionsManager;
import fiscal.action.MoldeProdutoActionManager;
import fiscal.entities.tables.Classificacao;
import fiscal.entities.tables.MoldeProduto;
import fiscal.gui.classificacao.ClassificacaoPesquisa;

@SuppressWarnings("serial")
public class MoldeProdutoPesquisa extends JDialog {

	private final JPanel contentPanel = new JPanel();
	private JPanel panelCentro;
	private JTextField textDescricao;
	private JButton btnPesquisa;
	private JLabel lblDescrioDoModelo;
	private JPanel panel_2;
	private JScrollPane scrollPane;
	private JPanel panel_3;
	private JCheckBox checkBoxVendaFracionada;
	private JCheckBox checkBoxProdutoImportado;
	private JCheckBox checkBoxSimilaridadeBloqueada;
	private JCheckBox checkBoxProdutoCotacao;
	private MoldeProdutoActionManager action;
	private ClassificacaoActionsManager actionClassificacao;
	private JTable table;
	private JTextField textClassificacao;
	private JLabel lblClassificao;
	private JButton btnPesquisaClassificacao;
	private String strClassificacao;

	private Classificacao classificacao;
	private MoldeProduto moldeProduto;
	private JButton btnSelecionar;
	private JButton btnSair;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		try {
			new MoldeProdutoPesquisa().setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog.
	 */
	public MoldeProdutoPesquisa() {
		setTitle("Manuten\u00E7\u00E3o de Modelos");
		try {
			setBounds(100, 100, 520, 620);
			setResizable(false);
			setModal(true);
			setLocationRelativeTo(null);
			getContentPane().setLayout(new BorderLayout());
			contentPanel.setMaximumSize(new Dimension(10, 10));
			contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
			getContentPane().add(contentPanel, BorderLayout.CENTER);
			GroupLayout gl_contentPanel = new GroupLayout(contentPanel);
			gl_contentPanel.setHorizontalGroup(
				gl_contentPanel.createParallelGroup(Alignment.LEADING)
					.addComponent(getPanelCentro(), GroupLayout.DEFAULT_SIZE, 504, Short.MAX_VALUE)
			);
			gl_contentPanel.setVerticalGroup(
				gl_contentPanel.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_contentPanel.createSequentialGroup()
						.addContainerGap()
						.addComponent(getPanelCentro(), GroupLayout.DEFAULT_SIZE, 570, Short.MAX_VALUE))
			);
			contentPanel.setLayout(gl_contentPanel);
			setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			getTable().getParent().setBackground(Color.WHITE);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	protected void alteraMoldeProduto() {
		MoldeProduto mp = selectObject();
		if (mp != null) {
			MoldeProdutoCadastro mpc = new MoldeProdutoCadastro(mp);
			mpc.setVisible(true);
			if (mpc.isAddElement() && getTable().getModel().getRowCount() > 0) {
				refreshTable();
			}
		}
	}

	private MoldeProduto selectObject() {
		int linha = getTable().getSelectedRow();
		if (linha > -1) {
			return (MoldeProduto) getTable().getModel().getValueAt(linha, 2);
		}
		return null;
	}
	private JPanel getPanelCentro() {
		if (panelCentro == null) {
			panelCentro = new JPanel();
			GroupLayout gl_panelCentro = new GroupLayout(panelCentro);
			gl_panelCentro.setHorizontalGroup(
				gl_panelCentro.createParallelGroup(Alignment.TRAILING)
					.addGroup(gl_panelCentro.createSequentialGroup()
						.addGap(19)
						.addGroup(gl_panelCentro.createParallelGroup(Alignment.TRAILING)
							.addGroup(gl_panelCentro.createSequentialGroup()
								.addComponent(getTextDescricao(), GroupLayout.DEFAULT_SIZE, 371, Short.MAX_VALUE)
								.addPreferredGap(ComponentPlacement.RELATED)
								.addComponent(getBtnPesquisa()))
							.addGroup(gl_panelCentro.createSequentialGroup()
								.addComponent(getTextClassificacao(), GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE)
								.addPreferredGap(ComponentPlacement.RELATED)
								.addComponent(getBtnPesquisaClassificacao())
								.addGap(4))
							.addComponent(getLblClassificao(), Alignment.LEADING)
							.addComponent(getLblDescrioDoModelo(), Alignment.LEADING))
						.addGap(29))
					.addGroup(gl_panelCentro.createSequentialGroup()
						.addGap(14)
						.addComponent(getPanel_3(), GroupLayout.DEFAULT_SIZE, 480, Short.MAX_VALUE)
						.addContainerGap())
					.addGroup(Alignment.LEADING, gl_panelCentro.createSequentialGroup()
						.addContainerGap()
						.addComponent(getPanel_2(), GroupLayout.DEFAULT_SIZE, 480, Short.MAX_VALUE)
						.addGap(14))
					.addGroup(Alignment.LEADING, gl_panelCentro.createSequentialGroup()
						.addGap(164)
						.addComponent(getBtnSelecionar())
						.addPreferredGap(ComponentPlacement.RELATED)
						.addComponent(getBtnSair(), GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE)
						.addContainerGap(172, Short.MAX_VALUE))
			);
			gl_panelCentro.setVerticalGroup(
				gl_panelCentro.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_panelCentro.createSequentialGroup()
						.addComponent(getLblDescrioDoModelo())
						.addPreferredGap(ComponentPlacement.RELATED)
						.addGroup(gl_panelCentro.createParallelGroup(Alignment.BASELINE)
							.addComponent(getTextDescricao(), GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE)
							.addComponent(getBtnPesquisa()))
						.addPreferredGap(ComponentPlacement.RELATED)
						.addGroup(gl_panelCentro.createParallelGroup(Alignment.TRAILING)
							.addGroup(gl_panelCentro.createSequentialGroup()
								.addComponent(getLblClassificao())
								.addPreferredGap(ComponentPlacement.RELATED)
								.addComponent(getTextClassificacao(), GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE))
							.addComponent(getBtnPesquisaClassificacao()))
						.addPreferredGap(ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
						.addComponent(getPanel_3(), GroupLayout.PREFERRED_SIZE, 77, GroupLayout.PREFERRED_SIZE)
						.addPreferredGap(ComponentPlacement.RELATED)
						.addComponent(getPanel_2(), GroupLayout.PREFERRED_SIZE, 327, GroupLayout.PREFERRED_SIZE)
						.addPreferredGap(ComponentPlacement.UNRELATED)
						.addGroup(gl_panelCentro.createParallelGroup(Alignment.BASELINE)
							.addComponent(getBtnSelecionar())
							.addComponent(getBtnSair()))
						.addGap(18))
			);
			panelCentro.setLayout(gl_panelCentro);
		}
		return panelCentro;
	}
	private JTextField getTextDescricao() {
		if (textDescricao == null) {
			textDescricao = new JTextField();
			textDescricao.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getBtnPesquisa().requestFocus();
				}
			});
			textDescricao.setColumns(10);
		}
		return textDescricao;
	}
	private JButton getBtnPesquisa() {
		if (btnPesquisa == null) {
			btnPesquisa = new JButton("Pesquisar");
			btnPesquisa.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getTextClassificacao().requestFocus();
					if (e.getKeyCode() == 38)
						getTextDescricao().requestFocus();
				}
			});
			btnPesquisa.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					refreshTable();
				}
			});
			btnPesquisa.setMnemonic('p');
		}
		return btnPesquisa;
	}
	protected void refreshTable() {
		
		int cont = getTable().getRowCount() - 1;
		while(cont >= 0) {
			((DefaultTableModel) getTable().getModel()).removeRow(cont);
			cont--;
		}

		ArrayList<MoldeProduto> mps;
		try {
			if (temParametro() && getClassificacao() != null) {
				mps = getAction().findByDescricaoAndParametrosAndClassificacao(getTextDescricao().getText().trim(), 
						getCheckBoxVendaFracionada().isSelected(), getCheckBoxProdutoImportado().isSelected(), 
						getCheckBoxProdutoCotacao().isSelected(), getCheckBoxSimilaridadeBloqueada().isSelected(), getClassificacao());
			} else {
				if (temParametro()) {
					mps = getAction().findByDescricaoAndParametros(getTextDescricao().getText().trim(), 
							getCheckBoxVendaFracionada().isSelected(), getCheckBoxProdutoImportado().isSelected(), 
							getCheckBoxProdutoCotacao().isSelected(), getCheckBoxSimilaridadeBloqueada().isSelected());
				} else {
					if (getClassificacao() != null)
						mps = getAction().findByDescricaoLikeAndClassificacao(getTextDescricao().getText().trim(), getClassificacao());
					else
						mps = getAction().findByDescricaoLike(getTextDescricao().getText().trim());
				}
			}
			
			for (MoldeProduto mp : mps) {
				Object objs[] = {mp.getId(), mp.getClassificacao(), mp};
				((DefaultTableModel) getTable().getModel()).addRow(objs);
			}
		} catch (PersistenceExceptionMessage e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}

	private boolean temParametro() {
		if (getCheckBoxSimilaridadeBloqueada().isSelected())
			return true;
		if (getCheckBoxProdutoCotacao().isSelected())
			return true;
		if (getCheckBoxVendaFracionada().isSelected())
			return true;
		if (getCheckBoxProdutoImportado().isSelected())
			return true;
		return false;
	}
	private JLabel getLblDescrioDoModelo() {
		if (lblDescrioDoModelo == null) {
			lblDescrioDoModelo = new JLabel("Descri\u00E7\u00E3o do Modelo");
		}
		return lblDescrioDoModelo;
	}
	private JPanel getPanel_2() {
		if (panel_2 == null) {
			panel_2 = new JPanel();
			panel_2.setBorder(new TitledBorder(null, "Resultado da Pesquisar", TitledBorder.LEADING, TitledBorder.TOP, null, null));
			GroupLayout gl_panel_2 = new GroupLayout(panel_2);
			gl_panel_2.setHorizontalGroup(
				gl_panel_2.createParallelGroup(Alignment.LEADING)
					.addComponent(getScrollPane(), GroupLayout.DEFAULT_SIZE, 491, Short.MAX_VALUE)
			);
			gl_panel_2.setVerticalGroup(
				gl_panel_2.createParallelGroup(Alignment.LEADING)
					.addComponent(getScrollPane(), GroupLayout.DEFAULT_SIZE, 252, Short.MAX_VALUE)
			);
			panel_2.setLayout(gl_panel_2);
		}
		return panel_2;
	}
	private JScrollPane getScrollPane() {
		if (scrollPane == null) {
			scrollPane = new JScrollPane();
			scrollPane.setViewportView(getTable());
		}
		return scrollPane;
	}
	private JPanel getPanel_3() {
		if (panel_3 == null) {
			panel_3 = new JPanel();
			panel_3.setBorder(new TitledBorder(null, "Parametros", TitledBorder.LEADING, TitledBorder.TOP, null, null));
			GroupLayout gl_panel_3 = new GroupLayout(panel_3);
			gl_panel_3.setHorizontalGroup(
				gl_panel_3.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_panel_3.createSequentialGroup()
						.addGap(21)
						.addGroup(gl_panel_3.createParallelGroup(Alignment.LEADING)
							.addComponent(getCheckBoxVendaFracionada())
							.addComponent(getCheckBoxProdutoImportado()))
						.addGap(92)
						.addGroup(gl_panel_3.createParallelGroup(Alignment.LEADING)
							.addComponent(getCheckBoxProdutoCotacao())
							.addComponent(getCheckBoxSimilaridadeBloqueada()))
						.addContainerGap(97, Short.MAX_VALUE))
			);
			gl_panel_3.setVerticalGroup(
				gl_panel_3.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_panel_3.createSequentialGroup()
						.addGroup(gl_panel_3.createParallelGroup(Alignment.BASELINE)
							.addComponent(getCheckBoxVendaFracionada())
							.addComponent(getCheckBoxProdutoCotacao()))
						.addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
						.addGroup(gl_panel_3.createParallelGroup(Alignment.BASELINE)
							.addComponent(getCheckBoxProdutoImportado())
							.addComponent(getCheckBoxSimilaridadeBloqueada()))
						.addContainerGap())
			);
			panel_3.setLayout(gl_panel_3);
		}
		return panel_3;
	}
	private JCheckBox getCheckBoxVendaFracionada() {
		if (checkBoxVendaFracionada == null) {
			checkBoxVendaFracionada = new JCheckBox("Venda Fracionada");
			checkBoxVendaFracionada.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getCheckBoxProdutoCotacao().requestFocus();
					if (e.getKeyCode() == 38)
						getBtnPesquisaClassificacao().requestFocus();
				}
			});
			checkBoxVendaFracionada.setMnemonic('e');
		}
		return checkBoxVendaFracionada;
	}
	private JCheckBox getCheckBoxProdutoImportado() {
		if (checkBoxProdutoImportado == null) {
			checkBoxProdutoImportado = new JCheckBox("Produto Importado");
			checkBoxProdutoImportado.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getCheckBoxSimilaridadeBloqueada().requestFocus();
					if (e.getKeyCode() == 38)
						getCheckBoxProdutoCotacao().requestFocus();
				}
			});
			checkBoxProdutoImportado.setMnemonic('i');
		}
		return checkBoxProdutoImportado;
	}
	private JCheckBox getCheckBoxSimilaridadeBloqueada() {
		if (checkBoxSimilaridadeBloqueada == null) {
			checkBoxSimilaridadeBloqueada = new JCheckBox("Similaridade Bloqueada");
			checkBoxSimilaridadeBloqueada.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getTable().requestFocus();
					if (e.getKeyCode() == 38)
						getCheckBoxProdutoImportado().requestFocus();
				}
			});
			checkBoxSimilaridadeBloqueada.setMnemonic('m');
		}
		return checkBoxSimilaridadeBloqueada;
	}
	private JCheckBox getCheckBoxProdutoCotacao() {
		if (checkBoxProdutoCotacao == null) {
			checkBoxProdutoCotacao = new JCheckBox("Produto de Cota\u00E7\u00E3o");
			checkBoxProdutoCotacao.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getCheckBoxProdutoImportado().requestFocus();
					if (e.getKeyCode() == 38)
						getCheckBoxVendaFracionada().requestFocus();
				}
			});
			checkBoxProdutoCotacao.setMnemonic('c');
		}
		return checkBoxProdutoCotacao;
	}

	public MoldeProdutoActionManager getAction() {
		if (action == null) {
			action = new MoldeProdutoActionManager();
		}
		return action;
	}

	public void setAction(MoldeProdutoActionManager action) {
		this.action = action;
	}
	private JTable getTable() {
		if (table == null) {
			table = new JTable();
			table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			table.addKeyListener(new KeyAdapter() {
				@Override
				public void keyReleased(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER){
						alteraMoldeProduto();
					}
				}
				@Override
				public void keyPressed(KeyEvent arg0) {
					if (arg0.getKeyCode() == 39)
						getBtnSelecionar().requestFocus();
					if (arg0.getKeyCode() == 37)
						getCheckBoxSimilaridadeBloqueada().requestFocus();
					
				}
			});
			table.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent arg0) {
					if (arg0.getClickCount() == 2) {
						setMoldeProduto(selectObject());
						if (getMoldeProduto() !=  null)
							dispose();
					}
				}
			});
			table.setModel(new DefaultTableModel(
				new Object[][] {
				},
				new String[] {
					"C\u00F3digo", "Classifica\u00E7\u00E3o", "Descri\u00E7\u00E3o"
				}
			) {
				boolean[] columnEditables = new boolean[] {
					false, false, false
				};
				public boolean isCellEditable(int row, int column) {
					return columnEditables[column];
				}
			});
			table.getColumnModel().getColumn(0).setPreferredWidth(54);
			table.getColumnModel().getColumn(1).setPreferredWidth(95);
			table.getColumnModel().getColumn(2).setPreferredWidth(403);
		}
		return table;
	}
	private JTextField getTextClassificacao() {
		if (textClassificacao == null) {
			textClassificacao = new JTextField();
			textClassificacao.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent arg0) {
					if (arg0.getKeyChar() == KeyEvent.VK_ENTER || arg0.getKeyCode() == 40) 
						getBtnPesquisaClassificacao().requestFocus();
					if (arg0.getKeyCode() == 38)
						getBtnPesquisa().requestFocus();
				}
			});
			textClassificacao.addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent arg0) {
					getTextClassificacao().selectAll();
				}
				@Override
				public void focusLost(FocusEvent e) {
					atualizaTextClassificacao();
				}
			});
			textClassificacao.setColumns(10);
		}
		return textClassificacao;
	}
	protected void atualizaTextClassificacao() {
		if (getTextClassificacao().getText().trim().length() > 0) {
			try {
				String str[] = getTextClassificacao().getText().trim().replace(".", "").split(" ");
				setClassificacao(getActionClassificacao().findEntityFromForm(str[0]));
				if (getClassificacao() != null) {
					getTextClassificacao().setText(getClassificacao().getClassificacaoMask() +" " +getClassificacao().getDescricao());
				} else {
					getTextClassificacao().setText("");
				}
			} catch (PersistenceExceptionMessage e) {
				e.printStackTrace();
			}
		} else {
			setClassificacao(null);
		}
	}

	private JLabel getLblClassificao() {
		if (lblClassificao == null) {
			lblClassificao = new JLabel("Classifica\u00E7\u00E3o");
		}
		return lblClassificao;
	}
	private JButton getBtnPesquisaClassificacao() {
		if (btnPesquisaClassificacao == null) {
			btnPesquisaClassificacao = new JButton("");
			btnPesquisaClassificacao.setPreferredSize(new Dimension(24, 24));
			btnPesquisaClassificacao.setMinimumSize(new Dimension(24, 24));
			btnPesquisaClassificacao.setMaximumSize(new Dimension(24, 24));
			btnPesquisaClassificacao.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar()== KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getCheckBoxVendaFracionada().requestFocus();
					if (e.getKeyCode() == 38)
						getTextClassificacao().requestFocus();
				}
			});
			btnPesquisaClassificacao.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					ClassificacaoPesquisa cp = new ClassificacaoPesquisa();
					cp.setVisible(true);
					if (cp.getClassificacao() != null) {
						getTextClassificacao().setText(cp.getClassificacao().toString());
						atualizaTextClassificacao();
					}
				}
			});
			btnPesquisaClassificacao.setIcon(new ImageIcon(MoldeProdutoPesquisa.class.getResource("/user/interfaces/icones/Search20.png")));
		}
		return btnPesquisaClassificacao;
	}

	public ClassificacaoActionsManager getActionClassificacao() {
		if (actionClassificacao == null) {
			actionClassificacao = new ClassificacaoActionsManager();
		}
		return actionClassificacao;
	}

	public void setActionClassificacao(ClassificacaoActionsManager actionClassificacao) {
		this.actionClassificacao = actionClassificacao;
	}
	
	public Classificacao getClassificacao() {
		return classificacao;
	}

	public void setClassificacao(Classificacao classificacao) {
		this.classificacao = classificacao;
	}

	public String getStrClassificacao() {
		if (strClassificacao == null) {
			strClassificacao = getTextClassificacao().getText();
		}
		return strClassificacao;
	}

	public void setStrClassificacao(String strClassificacao) {
		this.strClassificacao = strClassificacao;
	}

	public MoldeProduto getMoldeProduto() {
		return moldeProduto;
	}

	public void setMoldeProduto(MoldeProduto moldeProduto) {
		this.moldeProduto = moldeProduto;
	}
	private JButton getBtnSelecionar() {
		if (btnSelecionar == null) {
			btnSelecionar = new JButton("Selecionar");
			btnSelecionar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					setMoldeProduto(selectObject());
					if (getMoldeProduto() !=  null)
						dispose();
				}
			});
			btnSelecionar.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getBtnSair().requestFocus();
					if (e.getKeyCode() == 38)
						getTable().requestFocus();
				}
			});
			btnSelecionar.setMnemonic('s');
		}
		return btnSelecionar;
	}
	private JButton getBtnSair() {
		if (btnSair == null) {
			btnSair = new JButton("Sair");
			btnSair.addKeyListener(new KeyAdapter() {
				@Override
				public void keyPressed(KeyEvent e) {
					if (e.getKeyChar() == KeyEvent.VK_ENTER || e.getKeyCode() == 40)
						getTextClassificacao().requestFocus();
					if (e.getKeyCode() == 38)
						getBtnSelecionar().requestFocus();
				}
			});
			btnSair.setMnemonic('r');
			btnSair.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					dispose();
				}
			});
		}
		return btnSair;
	}
}
